#include <stdio.h>

#include <limits.h>

int
main(){

  printf("signed char's max = %d\n",SCHAR_MAX);
  printf("signed char's min = %d\n",SCHAR_MIN);
  printf("unsigned char = %d\n",UCHAR_MAX);

  printf("signed short max = %d\n",SHRT_MAX);
  printf("signed short min = %d\n",SHRT_MIN);
  printf("unsigned short = %d\n",USHRT_MAX);

  printf("signed int max  = %d\n",INT_MAX);
  printf("signed int min = %d\n",INT_MIN);
  printf("unsigned int = %d\n",UINT_MAX);

  printf("signed long max  = %d\n",LONG_MAX);
  printf("signed long min = %d\n",LONG_MIN);
  printf("unsigned long = %d\n",ULONG_MAX);

  char sign_char_max ,sign_char_min;
  unsigned char unsign_char_max;
  short  sign_short_max,sign_short_min;
  unsigned short unsign_short_max;
  int sign_int_max,sign_int_min;
  unsigned int unsign_int_max;
  long sign_long_max,sign_long_min;
  unsigned int unsign_long_max;

  unsign_char_max=(~0);
  unsign_char_max=unsign_char_max/2;
  printf("unsign_char_max=%d\n" , unsign_char_max*2+1);

  sign_char_max=unsign_char_max;
  printf("sign_char_max=%d\n" , sign_char_max);


  sign_char_min=~sign_char_max;
  printf("sign_char_min=%d\n" , sign_char_min);

  unsign_short_max=(~0);
  unsign_short_max=unsign_short_max/2;
  printf("unsign_short_max=%d\n" , unsign_short_max*2+1);

  sign_short_max=unsign_short_max;
  printf("sign_short_max=%d\n" , sign_short_max);


  sign_short_min=~sign_short_max;
  printf("sign_short_min=%d\n" , sign_short_min);

unsign_int_max=(~0);
  unsign_int_max=unsign_int_max/2;
  printf("unsign_int_max=%d\n" , unsign_int_max*2+1);

  sign_int_max=unsign_int_max;
  printf("sign_int_max=%d\n" , sign_int_max);


  sign_int_min=~sign_int_max;
  printf("sign_int_min=%d\n" , sign_int_min);



  return 0;
}
